Week 01 WednesdayΒΆ

August 29, 2024

GoalsΒΆ

  1. What frameworks can we use for A01?
  2. Ethics/Impacts/Stakeholders case study
  3. Romi in Webots: Basic motion & models

What frameworks can we use for A01?ΒΆ

A01 asks us to consider the social, environmental, and ethical implications of technological solutions.

  • What do we mean by Social Implications?
  • What do we mean by Environmental Implications?
  • What do we mean by Ethical Implications?

What do we mean by "Social Implications?"ΒΆ

Aside from questions of should there are questions of does. How does a robot's design influence the social structures in which it operates? Let's think about these for the following

  • A factory robot that welds or assembles
  • A self-driving car
  • Educational social robot designed to improve conflict-resolution skills in young children
  • Educational mobile robot (like Romi)

What do we mean by "Environmental Implications?"ΒΆ

When we talk about environmental impact of these robots, we might be talking about the world as a whole (e.g. climate change, waste accumulation, sustainability), but we are probably at least talking about the natural environment adjacent to the robot and how that might be affected by it at some point during its life cycle. What can we say about the environmental impacts of:

  • An ocean cleanup robot
  • A logging robot
  • A chatbot like ChatGPT

Think about both primary and secondary effects each of these robots could have on its environment.

What do we mean by "Ethical Considerations?"ΒΆ

When we talk about "ethical considerations" in the context of engineering and robotics specifically, a lot of the time we are talking about what people (in many cases, engineers) should do. For example, established roboticist Rodney Brooks developed his own Three Laws of Robotics that seem to govern how engineers should design and test robots before moving them towards a commercial product. But Robot Ethics can deal with many things:

  • How robots should behave towards (people, property, animals, plants)
  • How engineers designing robots should behave
  • How people should behave in the company of and/or towards robots

Let's focus in temporarily just on how robot engineers and possibly their creations should behave.

The IEEE code of ethics.... is it enough?ΒΆ

image.png

Summary of ORI framework (relevant steps for A01):ΒΆ

  • Identify your robot's use case (intended or unintended or both)
  • Identify stakeholders, select key stakeholders to engage with
  • Listen to the stakeholders
  • Map "personas" of your stakeholders & identify their values
    • Create a persona chart
    • Consider robotics laws/principles
    • Consider community values
  • Discover tensions in values
  • Discover tensions in activities
  • Discover tensions in technologies
  • Synthesize
    • Organize tensions and values thematically

Break into groups! Time for an exerciseΒΆ

Cruise IEEE robotics news for a key story. Perform the ORI steps 1-7. Reconvene in 20 minutes to report out. You can use any of the links in A01 for more detailed information!

  • Identify your robot's use case (intended or unintended or both)
  • Identify stakeholders, select key stakeholders to engage with
  • Listen to the stakeholders
  • Map "personas" of your stakeholders & identify their values
    • Create a persona chart
    • Consider robotics laws/principles
    • Consider community values
  • Discover tensions in values
  • Discover tensions in activities
  • Discover tensions in technologies
  • Synthesize
    • Organize tensions and values thematically

Let's make the Romi move together in Webots!ΒΆ

More detail is available at the video in the 02_Romi_Resources page, but the steps are:

  • Open Google Drive for Desktop on your lab station computer.
  • Navigate to your ES302_Name/ shared folder.
  • Create a new folder called "Week01_Wednesday/"
  • Right click to open a terminal at this location using windows cmd or git bash.
  • Create a new ES302 Webots workspace using the following commands:
git clone https://github.com/Alexanderallenbrown/ES302_Webots.git
cd ES302_Webots
git submodule update --init
git submodule update
  • Then, open the world romi_demo.wbt in Webots!
  • "save as" the world and the controller to reflect today's class.

Class Exercise: Scope, Construct, Validate a basic model for the Romi's motionΒΆ

image.png What has to happen (in terms of inputs/commands) for the Romi to:

  • Move forward?
  • Move backward?
  • Turn without moving forward or backward? **Implement a Python function that performs each of these behaviors by modifying the "controller" file in your world.

Class Exercise:ΒΆ

Modify your controller file so that the Romi travels in a perfect square shape comprising 2x2 "world squares".

image.png

  • How did you accomplish this?
  • What if the behavior needed to be even MORE complex?

What did we learn?ΒΆ

Complex robot behaviors require organization. We NEED a SYSTEM. The system we will learn in ES302 is to organize our robot's (many) behaviors using a Finite State Machine (FSM).